Adjustable time constant control and method system for a servomotor

ABSTRACT

An adjustable time constant control system for a servomotor, determines the optimum adjustable time constant for a servomotor based on a moving amount, load, or the like, for every block of a machining program to reduce the machining time required by the adjustable time constant control system. A determination as to whether a velocity reaches a command velocity (Vt) is made based on the distance to a target moving position (step S1) . If the velocity reaches the command velocity (V t ), the command velocity (V t ), the command velocity (Vt) is used as a velocity (V) (step S2). On the other hand, if the velocity does not reach the command velocity (V t ), a reaching velocity (Vu) is calculated (step S3), and the calculated value is used as a velocity (V) (step S4). Further, the maximum torque (Tmax) corresponding to the velocity (V) is determined from the torque curve (step S5), and an accelerating torque (Ta) is calculated based on the maximum torque (Tmax) (step S6). Furthermore, acceleration (a) is calculated (step S7), and an adjustable time constant (τ) is calculated based on the acceleration (a) and the velocity (V) (step S8). The largest one of the adjustable time constants (τ) of all drive shafts is determined as an adjustable time constant for each shaft (step S9). Therefore, the optimum adjustable time constant can be determined, to reduce the machining time required by the adjustable time constant control system.

This application is a continuation of application Ser. No. 07/955,707, filed Dec. 16, 1992, now abandoned.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is related to U.S. patent application Ser. Nos. 07/855,002, 07/870,881 and 07/776,418.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an adjustable time constant control system for a servomotor, which controls operations of movable parts in a machine tool while determining accelerating and decelerating time constants, and in particular, to an adjustable time constant control system, which controls movable parts in a machine tool while determining the optimum adjustable time constant every block,

2. Description of the Related Art

In an adjusting operation of a numerical control unit in the field, an accelerating time constant and decelerating time constant for each servomotor are preset, each servomotors being operable to drive a corresponding one of respective drive shafts or axes, Hereinafter, a term "adjustable time constant" is used, which includes the accelerating and decelerating time constants. The adjustable time constant is greatly influenced by the conditions in which the numerical control unit is operated. This makes it difficult to uniformly determine the adjustable time constant. For this reason, the adjustable time constant is conventionally determined on the basis of judgment in experience, a tentative operation, or the like.

However, if the time constant is determined with a sufficient margin, a cycle time becomes long, conversely, if it is determined to a small value, positioning accuracy is lowered due to generation of vibration, or the like. Therefore, the time constant must be determined to an appropriate value, but it is difficult to find the objective standard of judgment in a short time. For this reason, in controlling movable parts in the machine tool by using an adjustable time constant with a sufficient margin, it is hard to improve an operation speed even if there is a sufficient margin of power in a torque generated by the servomotor.

SUMMARY OF THE INVENTION

The present invention has been made in view of the above circumstances. Therefore, an object of the present invention is to provide an adjustable time constant control system for a servomotor, which determines an optimum adjustable time constant of the servomotor with respect to a moving amount, load, or the like.

In order to solve the above problems, according to the present invention, there is provided an adjustable time constant control system, which controls an operation of a machine tool while determining an optimum adjustable time constant of the servomotor every block, comprising the steps of: determining an output torque of the servomotor on the basis of a programmed velocity; determining an accelerating torque by subtracting a static load torque from said output torque; determining acceleration on the basis of said acceleration torque and load inertia of the servomotor; and determining an adjustable time constant on the basis of said acceleration.

The output torque of the servomotor is determined on the basis of the programmed velocity and a velocity vs. torque curve of the servomotor from which a viscous loss is previously subtracted, An accelerating torque for accelerating the load is obtained by subtracting the static load torque including a frictional torque, a gravity torque, or the like, from the output torque. Further, an adjustable time constant is determined on the basis of the accelerating torque, and thus, acceleration or deceleration of the machine tool is controlled.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart showing an adjustable time constant control system for a servomotor according to the present invention;

FIG. 2 is a graph showing the relationship between a moving distance and achievable velocity of each shaft in a machine tool;

FIG. 3 is a graph showing the relationship between the velocity and torque of the servomotor; and

FIG. 4 is a schematic block diagram of a numerical control unit for carrying out the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

An embodiment of the present invention will be hereinafter described with reference to the drawings.

FIG. 2 is a graph showing the relationship between a moving distance of each drive shaft or axis in a machine tool and an achievable velocity. In FIG. 2, time is plotted along the abscissas, while velocity is plotted along the ordinate. When the moving distance (or an angle of rotation) is great considerably, respective points o, a, b, and c are passed as shown by a line 2. In concrete, the acceleration is made at a time constant τ₀ until the point a is reached, the movement is made at a commanded velocity Vt, and then the deceleration made for stoppage at the point c. Thus, the section surrounded by the lines connecting the points o, a, b, c, and o is equivalent to the moving distance. If the moving distance is short, the time interval between the points a and b, in which time interval the velocity is fixed, becomes short. The state where the length between the points a and b is greater than zero is referred to as a long motion, while the state where the length between the points a and b is equal to or less than zero is referred to as a short motion. At the boundary between the long and short motions, the locus of o-a-c1 shown by a line 3 is drawn.

If the moving distance becomes further short, the acceleration is varied up to a straight line od defined by the time constant τ₀ and the maximum velocity Vmax, and thus, o-al-c2 shown by a line 4 is obtained. Further, if the moving distance becomes still shorter, o-a2-c3 shown by a line 5 is obtained. The maximum velocity at this moment becomes Vu, which is referred to as a reaching velocity or ultimate velocity.

FIG. 3 is a graph showing the relationship between the velocity and torque of a servomotor. In FIG. 3, velocity (V) is plotted along: the abscissa, while torque (T) is plotted along the ordinate. If a specified velocity is determined, the maximum torque Tmax corresponding thereto is determined. The data indicating the relationship is stored in a numerical control unit for every servomotor of the machine tool.

Assuming that positions from a first to third shafts of the machine tool are determined as P₁ to P₃, respectively, and a weight of a workpiece is determined as W, inertia of each shaft and static load torque can be expressed by the following equations. In this case, the static load torque includes a frictional torque and a gravity torque.

Here, assuming that inertia of the first to third shafts are determined as I₁, I₂, and I₃, respectively, and further, the static load of the first to third shafts are determined as T_(w1), T_(w2) and T_(w3), respectively, these values can be obtained by the following equations:

    I.sub.1 =F.sub.1 (P.sub.1, P.sub.2, P.sub.3, W)

    I.sub.2 =F.sub.2 (P.sub.1, P.sub.2, P.sub.3, W)

    I.sub.3 =F.sub.3 (P.sub.1, P.sub.2, P.sub.3, W)

    T.sub.w1 =G.sub.1 (P.sub.1, P.sub.2, P.sub.3, W)

    T.sub.w2 =G.sub.2 (P.sub.1, P.sub.2, P.sub.3, W)

    T.sub.w3 =G.sub.3 (P.sub.1, P.sub.2, P.sub.3, W)

These functions F₁ to F₃ and G₁ to G₃ are calculated on the basis of the construction of the machine tool. Therefore, when the machine is in tool a specified state, these inertia I_(I) to I₃ and static load torques T_(w1) to T_(w3) are obtained by calculation in the numerical control unit.

In this case, these inertia and static load torques with respect to the moving current position P_(n) and target position P_(n+1) are sequentially calculated during the operation of NC programs. W is commanded by the NC programs.

FIG. 4 is a schematic block diagram of a numerical control unit for carrying out the present invention. The numerical control unit 30 includes a processor board 31 which comprises a processor 31a, a ROM 31b, and a RAM 31c. The processor 31a globally controls the numerical control unit 30 according to system programs stored in the ROM 31b. Data such as W mentioned above, NC programs, and the like are stored in the RAM 31c. A part of the RAM comprises a nonvolatile memory in which these data, NC programs, and the like are stored. The processor board 31 is connected to a bus 39.

A digital servomotor control circuit 32 is connected to the bus 39, and responds to the command supplied from the processor board 31 to drive servomotors 51, 52 and 53 through a servo amplifier 33. These servomotors are included in the machine tool and operate respective shafts or axes of the machine tool 1.

A serial port 34 is connected to the bus 39, and is further connected with an operating panel 54, and a RS232C apparatus 55. The operating panel 54 is used for manually operating the machine tool. Further, a CRT 36a is connected to the serial port.

An operating panel 36b is connected to a digital I/O 35. Output signals are supplied to the outside through the digital I/O 35 and an analog I/O 37. Further, program data, NC programs other than programs which are in use, and the like are stored in a mass memory 38,

In the above, an explanation has been given as to the servo control circuit comprised of the digital servomotor control circuit 32, but the same is applied to an analog servomotor control circuit.

FIG. 1 is a flowchart showing an accelerating and decelerating time constant control system for a servomotor. In the drawing, numerals which follow S each indicate a step number.

[S1] It is determined whether or not the velocity reaches the commanded velocity Vt on the basis of the distance to the target moving position, and if it reaches, the sequence advances to S2, or i f not so, the sequence advances to S3.

[S2] The commanded velocity Vt is determined as a velocity V.

[S3] A reaching velocity Vu is obtained by the following equation: (Assuming that the moving distance is X.)

    Vu=(X·Vmax/τ.sub.0).sup.1/2

[S4] The reaching velocity Vu is determined as the velocity V.

[S5] The maximum torque Tmax corresponding to the velocity V is determined on the basis of the torque curve shown in FIG. 3.

[S6] An accelerating torque Ta is calculated by subtracting the static load torque T_(w) from the maximum torque Tmax. The accelerating torques Ta_(n) and Ta_(n+1) each of which is a function of a corresponding one of T_(wn) and T_(wn+1) are calculated, T_(wn) and T_(wn+1) respectively indicating static load torques of the current and target positions.

    Ta.sub.n =Tmax-T.sub.wn

    Ta.sub.n+1 =Tmax-T.sub.wn+1

[S7] Acceleration a_(n) and a_(n+) are calculated each of which is a function of corresponding ones of the accelerating torques Ta_(n), Ta_(n+1) and the inertia I_(n), In_(n+1) at the current and target positions.

    a.sub.n =(Ta.sub.n /I.sub.n)

    a.sub.n+1 =(Ta.sub.n+1 /I.sub.n+1)

In this case, a smaller one of a_(n) and a_(n+1) is determined as the acceleration a.

[S8] An accelerating/decelerating time constant or adjustable time constant τ is calculated on the basis of the acceleration a and the velocity V by the following equation:

    τ=a/V

The adjustable time constant, etc, for each program point in the programs can be adjusted by conducting multiplication where a constant A for minute adjustment is used as multiplier. Respective step for S₁ to S₈ is obtained every shaft.

[S9] The greatest τ among the time constants associated with the three shafts is determined as the adjustable time constant for each shaft,

This is intended to make the adjustable time constant for each shaft assume the same value, so that the locus of the tip of a tool of the machine tool does not diverge from a programmed trace,

In the meantime, an output torque of the servomotor can be calculated on the basis of the programmed velocity which is regarded as the velocity V, without executing the steps S1 through S4.

With respect to fast feeding where there is no need of making the adjustable time constants for all the shafts assume the same value, the optimum adjustable time constants for respective shafts can be determined.

Although the three-axis machine tool has been explained, by way of example, in the above, it is also possible to reduce a machining time in other types of machine tools, by adjusting the adjustable time constant to the optimum value. Further, the present invention is applicable to servomotors such as a spindle motor for positioning control of a spindle shaft in a similar manner.

As seen from the above descriptions, according to the present invention, the accelerating/decelerating time constant for each shaft is determined on the basis of the achievable velocity, inertia, or the like, so that the optimum accelerating/decelerating time constant can be determined, and hence the machining time can be shortened. 

I claim:
 1. A method for determining an adjustable time constant for a servomotor, comprising the steps of:a) determining whether the servomotor will reach a commanded velocity V_(t), based on a movement distance X of the servomotor; b) setting the commanded velocity V_(t) as a set velocity V if said step (a) determines that the servomotor will reach the commanded velocity V_(t) ; c) determining a reaching velocity V_(u) `(X·V_(max) /τ₀)^(1/2), V_(max) being a maximum velocity of the servomotor and τ₀ being a time constant corresponding to the maximum velocity V_(max), if said step (a) determines that the servomotor will not reach the commanded velocity V_(t) ; d) setting the reaching velocity V_(u) as the set velocity V if said step (a) determines that the servomotor will not reach the commanded velocity V_(t) ; e) determining a maximum torque T_(max) based on a predetermined correspondence between velocity and torque of the servomotor, using the set velocity V; f) determining a current static load torque Tw_(n) based on a current angular position P_(n) of the servomotor; g) determining a current accelerating torque Ta_(n) by subtracting the current static load torque Tw_(n) from the maximum torque T_(max) ; h) determining a current inertia I_(n) of the servomotor based on the current angular position P_(n) ; i) determining a current acceleration a_(n) by dividing the current accelerating torque Ta_(n) by the current inertia I_(n) ; j) determining a target static load torque Tw_(n+1) based on a target angular position P_(n+1) of the servomotor; k) determining a target accelerating torque Ta_(n+1) by subtracting the target static load torque Tw_(n+1) from the maximum torque T_(max) ; l) determining a target inertia I_(n+1) of the servomotor based on the target angular position P_(n+1) ; m) determining a target acceleration a_(n+1) by dividing the target accelerating torque Ta_(n+1) by the target inertia I_(n+1) ; n) determining a smallest one of the current acceleration a_(n) and the target acceleration a_(n+1) ; o) determining the adjustable time constant by dividing the smallest one of the current acceleration a_(n) and the target acceleration a_(n+1), by the set velocity V; and p) controlling the servomotor based on the adjustable time constant for the servomotor determined in said step (o).
 2. A method as claimed in claim 1, wherein the servomotor drives a workpiece, and the current static load torque Tw_(n), the current inertia I_(n), the target static load torque Tw_(n+1) and the target inertia I_(n+1), determined in said steps (d), (f), (h) and (j), respectively, are determined based on a weight of the workpiece.
 3. A method as claimed in claim 1, wherein said steps (a)-(n) are repeated for each of a plurality of servomotors to determine a plurality of adjustable time constants for respective servomotors, further comprising the step of:q) determining a smallest one of the adjustable time constants as the adjustable time constant to be used to control the plurality of servomotors in said step (p).
 4. A method of determining an adjustable time constant for a servomotor, comprising the steps of:a) determining whether the servomotor will reach a commanded velocity V_(t) based on a movement distance X of the servomotor; b) setting the commanded velocity V_(t) as a set velocity V if said step (a) determines that the servomotor will reach the commanded velocity V_(t) ; c) determining a reaching velocity V_(u) =(X·V_(max) /τ_(o))^(1/2), V_(max) being a maximum velocity of the servomotor and τ_(o) being a time constant corresponding to the maximum velocity V_(max), if said step (a) determines that the servomotor will not reach the commanded velocity V_(t) ; d) setting the reaching velocity V_(u) as the set velocity V if said step (a) determines that the servomotor will not reach the commanded velocity V_(t) ; e) determining a maximum torque T_(max) based on a predetermined correspondence between velocity and torque of the servomotor, using the set velocity V; f) determining a static load torque Tw_(n) based on an angular position P_(n) of the servomotor; g) determining an accelerating torque Ta_(n) by subtracting the static load torque Tw_(n) from the maximum torque T_(max) ; h) determining an inertia I_(n) of the servomotor based on the angular position P_(n) ; i) determining an acceleration a_(n) by dividing the accelerating torque Ta_(n) by the inertia I_(n) ; j) determining the adjustable time constant by dividing the acceleration a_(n) by the set velocity V; and k) controlling the servomotor based on the adjustable time constant for the servomotor determined in said step (j).
 5. A method according to claim 4, wherein a plurality of servomotors are controlled by selecting a maximum value of said adjustable time constants of respective servomotors.
 6. A method according to claim 4, wherein said adjustable time constants of respective servomotors are individually determined. 